{ "cells": [ { "cell_type": "code", "execution_count": 15, "id": "exact-measure", "metadata": {}, "outputs": [], "source": [ "# Sometimes a two sets of experimental data share all or some of the same model\n", "# parameters. Consider, for example, the LRC resonator. One could measure\n", "# both the magnitude and phase of the voltage across the resistor as a\n", "# function of frequency. Both of these quantities depend on the resonant\n", "# frequency of the system and a loss parameter. The magnitude and phase\n", "# data could be fit independently to determine two sets of the parameters.\n", "# Perhaps you could then take a weighted average of the results to produce\n", "# a single 'best' value for the resonant frequency and loss parameter.\n", "# However, a better approach is to simultaneously fit the two data sets and\n", "# directly extract a single best-fit value for each parameter. This\n", "# tutorial shows you how to implement a simultaneous fit to multiple data\n", "# sets that, each have their own model, but share at least some of the\n", "# same best-fit parameters.\n", "\n", "# This script is based on one developed by Jonathan J. Helmus in 2013. Here \n", "# is a link to the code that was posted online: \n", "# https://mail.python.org/pipermail/scipy-user/2013-April/034403.html\n", "\n", "# I modified the code so that we could do a weighted fit and then extract \n", "# uncertainty estimates for the best-fit parameters." ] }, { "cell_type": "code", "execution_count": 16, "id": "enormous-nashville", "metadata": {}, "outputs": [], "source": [ "# Import some standard modules.\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 17, "id": "boring-cricket", "metadata": {}, "outputs": [], "source": [ "# Import the data and plot it. The data file has three columns: \n", "# 1. frequency, 2. real component of S11, and 3. imaginary component of S11.\n", "# S11 is a reflection coefficient.\n", "M = np.loadtxt(\"S11 - real imag.dat\")\n", "fdata = M[:, 0]\n", "Sreal = M[:, 1]\n", "Simag = M[:, 2]" ] }, { "cell_type": "code", "execution_count": 18, "id": "handled-intention", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[0.1 0.1 0.1 ... 0.2 0.2 0.2]\n", "[0.05 0.05 0.05 ... 0.3 0.3 0.3 ]\n" ] } ], "source": [ "# To demonstrate the implementation of a weighted fit, I define two vectors \n", "# which will be used as uncertainties in the measured values. One for the \n", "# real component of S11 and one for the imaginary component of S11.\n", "x = np.ones(int((len(fdata) - 1)/2))\n", "y = np.ones(int((len(fdata) - 1)/2 + 1))\n", "errReData = np.concatenate([0.1*x] + [0.2*y])\n", "errImData = np.concatenate([0.05*x] + [0.3*y])\n", "print(errReData)\n", "print(errImData)" ] }, { "cell_type": "code", "execution_count": 19, "id": "productive-christmas", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Here's the plot of the experimental data.\n", "plt.plot(fdata, Sreal, 'or')\n", "plt.plot(fdata, Simag, 'ob')\n", "plt.xlabel('Frequency (Hz)');\n", "plt.ylabel('S11');\n", "plt.title('Initial Guess at Parameters');\n", "plt.legend(('real','imaginary'));" ] }, { "cell_type": "code", "execution_count": 20, "id": "accessory-edinburgh", "metadata": {}, "outputs": [], "source": [ "# To do the fitting, we need to define the models that the two data sets will\n", "# be fit to. The real component of S11 will be fit to 'ReS()' and the imaginary\n", "# component will be fit to 'ImS()'. The input 'p' will be a list to the two fit\n", "# parameters. Our parameters will be L1 (the inductance of a loop of wire) and\n", "# q which is related to the propagation constant for signals in a coaxial \n", "# cable. Z0 = 50 ohms is the characteristic impedance of the coaxial cable.\n", "Z0 = 50" ] }, { "cell_type": "code", "execution_count": 21, "id": "effective-modern", "metadata": {}, "outputs": [], "source": [ "# Here's the model for the real component of the data.\n", "def ReS(p, freq): \n", " L1, q = p\n", " Xin = Z0*(2*np.pi*freq*L1/Z0 + np.tan(q*freq))/(1-(2*np.pi*freq*L1/Z0)*np.tan(q*fdata))\n", " return ((Xin/Z0)**2 - 1)/((Xin/Z0)**2 + 1)" ] }, { "cell_type": "code", "execution_count": 22, "id": "turkish-experiment", "metadata": {}, "outputs": [], "source": [ "# Here's the model for the imaginary component of the data.\n", "def ImS(p, freq): \n", " L1, q = p\n", " Xin = Z0*(2*np.pi*freq*L1/Z0 + np.tan(q*freq))/(1-(2*np.pi*freq*L1/Z0)*np.tan(q*fdata))\n", " return 2*(Xin/Z0)/((Xin/Z0)**2 + 1)" ] }, { "cell_type": "code", "execution_count": 23, "id": "patient-mailing", "metadata": {}, "outputs": [], "source": [ "# When we do the fit we will have to supply initial guesses for the parameter\n", "# values. It is good practice to try some values and compare the model functions\n", "# to the experimental data. That way we can be sure that we're starting\n", "# will reasonable initial values. The guesses don't need to be perfect, just good\n", "# enough to get the minimization rountine started on a good trajectory.\n", "gL1 = 0.2e-9 # henries\n", "gq = 3.2e-9 # seconds" ] }, { "cell_type": "code", "execution_count": 24, "id": "aquatic-adjustment", "metadata": {}, "outputs": [], "source": [ "# Make the list of initial parameter guesses.\n", "params = [gL1, gq]" ] }, { "cell_type": "code", "execution_count": 26, "id": "vocal-referral", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Use the functions that we defined to plot the theoretical curves on top of \n", "# the data.\n", "\n", "# First, reproduce the plot of the experimental data.\n", "plt.plot(fdata, Sreal, 'or')\n", "plt.plot(fdata, Simag, 'ob')\n", "plt.xlabel('Frequency (Hz)');\n", "plt.ylabel('S11');\n", "plt.title('Initial Guess at Parameters');\n", "plt.legend(('real','imaginary'));\n", "\n", "# Then add the lines defined by the two functions.\n", "plt.plot(fdata, ReS(params, fdata), 'k--')\n", "plt.plot(fdata, ImS(params, fdata), 'k--');" ] }, { "cell_type": "code", "execution_count": 27, "id": "mechanical-ranking", "metadata": {}, "outputs": [], "source": [ "# Next, we define our error functions to be minimized. Ultimately, we will\n", "# use 'scipy.optimize.leastsq()' to minimize the sum of the squares of the \n", "# elements in our final error function. The basic error function is just the \n", "# difference between the theoretically-calculated y-values and the measured\n", "# #y-values. For the real data, that would be 'Res() - Sreal'. To do a \n", "# fit weighted, we want points with small error bars have greater importance\n", "# in the sum. This is acheived by dividing each term in the sum by the \n", "# experimental uncertainty in the measured point. In this way, the final error\n", "# function becomes '(Res() - Sreal)/errReData'. To implement this in Python\n", "# we define an error function which relies on the function already defined\n", "# for the best-fit model.\n", "def errRe(p, freq, yRe, sigmaRe):\n", " return (ReS(p, freq) - yRe)/sigmaRe" ] }, { "cell_type": "code", "execution_count": 28, "id": "frozen-mexican", "metadata": {}, "outputs": [], "source": [ "# We have an equivalent error function for the imaginary component of the data.\n", "def errIm(p, freq, yIm, sigmaIm):\n", " return (ImS(p, freq) - yIm)/sigmaIm" ] }, { "cell_type": "code", "execution_count": 29, "id": "warming-values", "metadata": {}, "outputs": [], "source": [ "# The final 'global' error function is the combination of 'errRe()' and 'errIm()'.\n", "# In this way, 'scipy.optimize.leastsq()' will be required to adjust the\n", "# fit parameters to simultaneously minimize to total net deviation between the\n", "# fit curves and the experimental data, weighted by the experimental \n", "# uncertainties, for both data sets\n", "def err_global(p, freq, yRe, yIm, sigmaRe, sigmaIm):\n", " err1 = errRe(p, freq, yRe, sigmaRe)\n", " err2 = errIm(p, freq, yIm, sigmaIm)\n", " return np.concatenate((err1, err2))" ] }, { "cell_type": "code", "execution_count": 30, "id": "handmade-differential", "metadata": {}, "outputs": [], "source": [ "# Here is the implementation of the actual minimization routine.\n", "# The important outputs are 'p_best' which will be a list of the best-fit parameters\n", "# and 'pcov' which will be used to estimate the uncertainties in the fit values.\n", "# To run the minimization function, the inputs that we need to provide are:\n", "# 1. The global error function, which depends on all of the other functions that\n", "# we defined.\n", "# 2. The list of initial guesses - which we called 'params'.\n", "# 3. The x-data, the two y-data sets, and the uncertainties in those y-data.\n", "# All of these inputs are given within 'args = ( ... )'.\n", "import scipy.optimize\n", "p_best, pcov, infodict, errmsg, success = scipy.optimize.leastsq(err_global,\\\n", " params, args=(fdata, Sreal, Simag, errReData, errImData), full_output = 1)" ] }, { "cell_type": "code", "execution_count": 31, "id": "fuzzy-nomination", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L1 = 11.871185464679385 nH and q = 2.3189356106454824 ns.\n" ] } ], "source": [ "# Here are the best-fit values.\n", "L1_fit = p_best[0]\n", "q_fit = p_best[1]\n", "print('L1 =', L1_fit/1e-9, 'nH and q =', q_fit/1e-9, 'ns.')" ] }, { "cell_type": "code", "execution_count": 32, "id": "racial-diabetes", "metadata": {}, "outputs": [], "source": [ "# To get error estimates of the best-fit values, we usually take the square\n", "# root of the diagonal elements of the covariance matrix.\n", "# According to the 'scipy.optimize.leastsq()' documentation:\n", "#\n", "# To obtain the covariance matrix of the parameters x, cov_x must be \n", "# multiplied by the variance of the residuals – see curve_fit.\n", "#\n", "# In this next line, we calculate this sum so that we can properly scale\n", "# the 'pcov' output from 'scipy.optimize.leastsq()'.\n", "res_sq = (err_global(p_best, fdata, Sreal, Simag, errReData, errImData)**2).sum()\\\n", " /(len(fdata)-len(p_best))" ] }, { "cell_type": "code", "execution_count": 34, "id": "herbal-trunk", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The best-fit parameters are: \n", " L1 ± ΔL1 = 11.871185464679385 ± 0.011297172968175824 nH\n", " q ± Δq = 2.3189356106454824 ± 0.0007503444807940306 ns\n" ] } ], "source": [ "# Finally, we get the error estimates from the square root of the diagonal\n", "# elements of the scaled covariance matrix.\n", "dL1 = np.sqrt(pcov[0][0]*res_sq)\n", "dq = np.sqrt(pcov[1][1]*res_sq)\n", "\n", "print('The best-fit parameters are:\\\n", " \\n L1 \\u00B1 \\u0394L1 =', L1_fit/1e-9, '\\u00B1', dL1/1e-9, 'nH'\\\n", " '\\n q \\u00B1 \\u0394q =', q_fit/1e-9, '\\u00B1', dq/1e-9, 'ns')" ] }, { "cell_type": "code", "execution_count": 35, "id": "concrete-contribution", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Let's added the best-fit curves (white lines) to the plot of the experimental\n", "# data.\n", "\n", "# Here's the data.\n", "plt.plot(fdata, Sreal, 'or')\n", "plt.plot(fdata, Simag, 'og')\n", "plt.xlabel('Frequency (Hz)');\n", "plt.ylabel('S11');\n", "plt.title('Best-Fit Results');\n", "plt.legend(('real','imaginary'))\n", "\n", "# Here are the best-fit lines.\n", "plt.plot(fdata, ReS(p_best, fdata), 'w-', linewidth = 2)\n", "plt.plot(fdata, ImS(p_best, fdata), 'w-', linewidth = 2);" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" } }, "nbformat": 4, "nbformat_minor": 5 }